package com.raitcon.hibernate.bean;
// Generated 27/05/2014 07:54:56 AM by Hibernate Tools 3.2.1.GA


import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Alumno generated by hbm2java
 */
@Entity
@Table(name="alumno"
    ,schema="public"
)
public class Alumno  implements java.io.Serializable {


     private long idAlumno;
     private String dniAlumno;
     private String nombres;
     private String apellidoPaterno;
     private String apellidoMaterno;
     private GradoSeccion gradoSeccion;
     private String direccion;
     private Date fechaNacimiento;
     private Character sexo;
     private String codAlumno;
     private Character state;       
     
     private Set<DetalleNota> detalleNotas = new HashSet<DetalleNota>(0);
     private Set<PadreAlumno> padreAlumnos = new HashSet<PadreAlumno>(0);

    public Alumno() {
    }

     public Alumno(long idAlumno) {
        this.idAlumno = idAlumno;
      
    }
	
    public Alumno(long idAlumno, GradoSeccion gradoSeccion, String dni, String nombres, String apellidoPaterno, String apellidoMaterno) {
        this.idAlumno = idAlumno;
        this.gradoSeccion = gradoSeccion;
        this.dniAlumno = dni;
        this.nombres = nombres;
        this.apellidoPaterno = apellidoPaterno;
        this.apellidoMaterno = apellidoMaterno;
    }
    public Alumno(long idAlumno, GradoSeccion gradoSeccion,
            String dni, String nombres, String apellidoPaterno,
            String apellidoMaterno, String direccion, Date fechaNacimiento, 
            Character sexo, String codAlumno,
            Set<DetalleNota> detalleNotas, Set<PadreAlumno> padreAlumnos) {
       this.idAlumno = idAlumno;
       this.gradoSeccion = gradoSeccion;
       //this.seccion = seccion;
       this.dniAlumno = dni;
       this.nombres = nombres;
       this.apellidoPaterno = apellidoPaterno;
       this.apellidoMaterno = apellidoMaterno;
       this.direccion = direccion;
       this.fechaNacimiento = fechaNacimiento;
       this.sexo = sexo;
       this.codAlumno = codAlumno;
        this.detalleNotas = detalleNotas;
       this.padreAlumnos = padreAlumnos;
    }
   
     @Id 
    
    @Column(name="id_alumno", unique=true, nullable=false)
    public long getIdAlumno() {
        return this.idAlumno;
    }
    
    public void setIdAlumno(long idAlumno) {
        this.idAlumno = idAlumno;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_grado_seccion", nullable=false)
    public GradoSeccion getGradoSeccion() {
        return this.gradoSeccion;
    }
    
    public void setGradoSeccion(GradoSeccion gradoSeccion) {
        this.gradoSeccion = gradoSeccion;
    }
/*@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="seccion_idseccion")
    public Seccion getSeccion() {
        return this.seccion;
    }
    
    public void setSeccion(Seccion seccion) {
        this.seccion = seccion;
    }*/
    
    @Column(name="dni_alumno", nullable=false)
    public String getDniAlumno() {
        return this.dniAlumno;
    }
    
    public void setDniAlumno(String dni) {
        this.dniAlumno = dni;
    }
    
    @Column(name="nombres", nullable=false)
    public String getNombres() {
        return this.nombres;
    }
    
    public void setNombres(String nombres) {
        this.nombres = nombres;
    }
    
    @Column(name="apellido_paterno", nullable=false, length=30)
    public String getApellidoPaterno() {
        return this.apellidoPaterno;
    }
    
    public void setApellidoPaterno(String apellidoPaterno) {
        this.apellidoPaterno = apellidoPaterno;
    }
    
    @Column(name="apellido_materno", nullable=false)
    public String getApellidoMaterno() {
        return this.apellidoMaterno;
    }
    
    public void setApellidoMaterno(String apellidoMaterno) {
        this.apellidoMaterno = apellidoMaterno;
    }
    
    @Column(name="direccion", length=60)
    public String getDireccion() {
        return this.direccion;
    }
    
    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name="fecha_nacimiento", length=29)
    public Date getFechaNacimiento() {
        return this.fechaNacimiento;
    }
    
    public void setFechaNacimiento(Date fechaNacimiento) {
        this.fechaNacimiento = fechaNacimiento;
    }
    
    @Column(name="sexo", length=1)
    public Character getSexo() {
        return this.sexo;
    }
    
    public void setSexo(Character sexo) {
        this.sexo = sexo;
    }
    
    @Column(name="cod_alumno", length=20)
    public String getCodAlumno() {
        return this.codAlumno;
    }
    
    public void setCodAlumno(String codAlumno) {
        this.codAlumno = codAlumno;
    }
    
      
    
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="alumno")
    public Set<DetalleNota> getDetalleNotas() {
        return this.detalleNotas;
    }
    
    public void setDetalleNotas(Set<DetalleNota> detalleNotas) {
        this.detalleNotas = detalleNotas;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="alumno")
    public Set<PadreAlumno> getPadreAlumnos() {
        return this.padreAlumnos;
    }
    
    public void setPadreAlumnos(Set<PadreAlumno> padreAlumnos) {
        this.padreAlumnos = padreAlumnos;
    }

    /**
     * @return the state
     */
    @Column(name = "state", length = 1)
    public Character getState() {
        return state;
    }

    /**
     * @param state the state to set
     */
    public void setState(Character state) {
        this.state = state;
    }




}


